/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Elias Mendoza
 */
@Entity
@Table(name="producto")
public class Producto implements Serializable{
  @Id
  @GeneratedValue(strategy= GenerationType.IDENTITY)
  private int id;
  @Column(nullable=false)
  private String nombre;
  @Column(nullable=false)
  private String tipo;
  //Declaramos la relacion muchos a uno entre producto y productor (un producto puede pertenecer a un productor)
  @JoinColumn(name="id_productor", referencedColumnName="id",nullable=false)
  @ManyToOne()
  private Productor productor;
  //************************************************************************************************************
  @OneToMany(cascade= CascadeType.ALL,mappedBy="primaryKey.productoFK")
  private List<ProductoSustrato> productoSustrato;
  public Producto() {
  }

  public Producto(int id) {
    this.id = id;
  }

  public List<ProductoSustrato> getProductoSustrato() {
    return productoSustrato;
  }

  public void setProductoSustrato(List<ProductoSustrato> productoSustrato) {
    this.productoSustrato = productoSustrato;
  }


  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getNombre() {
    return nombre;
  }

  public void setNombre(String nombre) {
    this.nombre = nombre;
  }

  public Productor getProductor() {
    return productor;
  }

  public void setProductor(Productor productor) {
    this.productor = productor;
  }

  public String getTipo() {
    return tipo;
  }

  public void setTipo(String tipo) {
    this.tipo = tipo;
  }

  @Override
  public String toString() {
    return "Producto{" + "id=" + id +" "+nombre+ '}';
  }

  @Override
  public boolean equals(Object obj) {
    if (obj == null) {
      return false;
    }
    if (getClass() != obj.getClass()) {
      return false;
    }
    final Producto other = (Producto) obj;
    if (this.id != other.id) {
      return false;
    }
    return true;
  }

  @Override
  public int hashCode() {
    int hash = 7;
    hash = 79 * hash + this.id;
    return hash;
  }

  
}
